<html>
   <head>
      <link rel="stylesheet" type="text/css" href="style.css" />
   </head>
   <body onload="">
<h2 class="comptitle">Compound Module <i>OverlayRouter</i></h2>
<b>Package:</b> oversim.underlay.inetunderlay<br/><b>File: <a href="src-underlay-inetunderlay-OverlayRouter.ned.html">src/underlay/inetunderlay/OverlayRouter.ned</a></b><br/>
<p><a href="oversim.underlay.inetunderlay.Router.html">Router</a> in the overlay network</p>
<img src="oversim.underlay.inetunderlay.OverlayRouter-type.png" ismap="yes" usemap="#type-diagram"/><map name="type-diagram">
<area shape="rect" href="../../../inet/doc/neddoc/inet.util.NAMTraceWriter.html" title="NAMTraceWriter" alt="NAMTraceWriter" coords="57,436,115,495">
<area shape="rect" href="../../../inet/doc/neddoc/inet.base.NotificationBoard.html" title="NotificationBoard" alt="NotificationBoard" coords="35,228,138,287">
<area shape="rect" href="../../../inet/doc/neddoc/inet.networklayer.common.InterfaceTable.html" title="InterfaceTable" alt="InterfaceTable" coords="45,292,128,351">
<area shape="rect" href="../../../inet/doc/neddoc/inet.networklayer.ipv4.RoutingTable.html" title="RoutingTable" alt="RoutingTable" coords="49,362,123,421">
<area shape="rect" href="oversim.common.ITier.html" title="ITier" alt="ITier" coords="30,78,74,137">
<area shape="rect" href="oversim.common.ITier.html" title="ITier" alt="ITier" coords="121,110,165,169">
<area shape="rect" href="oversim.common.ITier.html" title="ITier" alt="ITier" coords="200,144,244,203">
<area shape="rect" href="oversim.common.IOverlay.html" title="IOverlay" alt="IOverlay" coords="263,198,308,257">
<area shape="rect" href="../../../inet/doc/neddoc/inet.transport.udp.UDP.html" title="UDP" alt="UDP" coords="264,276,308,335">
<area shape="rect" href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html" title="TCP" alt="TCP" coords="212,276,256,335">
<area shape="rect" href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html" title="NetworkLayer" alt="NetworkLayer" coords="243,354,325,413">
<area shape="rect" href="../../../inet/doc/neddoc/inet.linklayer.ppp.PPPInterface.html" title="PPPInterface" alt="PPPInterface" coords="230,436,339,495">
<area shape="rect" href="oversim.common.NeighborCache.html" title="NeighborCache" alt="NeighborCache" coords="125,436,216,495">
<area shape="rect" href="oversim.common.BootstrapList.html" title="BootstrapList" alt="BootstrapList" coords="131,292,210,351">
<area shape="rect" href="oversim.common.CryptoModule.html" title="CryptoModule" alt="CryptoModule" coords="129,362,211,421">
</map>
<h3 class="subtitle">Usage diagram:</h3>
<p>The following diagram shows usage relationships between types.
Unresolved types are missing from the diagram.
Click <a href="full-ned-usage-diagram.html">here</a> to see the full picture.</p>
<img src="oversim.underlay.inetunderlay.OverlayRouter-usage.png" ismap="yes" usemap="#usage-diagram"/><map name="usage-diagram"><area shape="rect" id="node1" href="oversim.underlay.inetunderlay.OverlayRouter.html" title="Compound Module OverlayRouter" alt="" coords="781,83,888,111">
<area shape="rect" id="node2" href="../../../inet/doc/neddoc/inet.transport.udp.UDP.html" title="Simple Module UDP" alt="" coords="5,161,77,189">
<area shape="rect" id="node4" href="oversim.common.BootstrapList.html" title="Simple Module BootstrapList" alt="" coords="101,161,200,189">
<area shape="rect" id="node6" href="../../../inet/doc/neddoc/inet.networklayer.common.InterfaceTable.html" title="Simple Module InterfaceTable" alt="" coords="224,161,328,189">
<area shape="rect" id="node8" href="oversim.common.ITier.html" title="Module Interface ITier" alt="" coords="352,161,424,189">
<area shape="rect" id="node10" href="oversim.common.NeighborCache.html" title="Simple Module NeighborCache" alt="" coords="448,161,560,189">
<area shape="rect" id="node12" href="ned.IdealChannel.html" title="Channel IdealChannel" alt="" coords="584,161,683,189">
<area shape="rect" id="node14" href="../../../inet/doc/neddoc/inet.base.NotificationBoard.html" title="Simple Module NotificationBoard" alt="" coords="707,161,829,189">
<area shape="rect" id="node16" href="../../../inet/doc/neddoc/inet.networklayer.ipv4.RoutingTable.html" title="Simple Module RoutingTable" alt="" coords="853,161,952,189">
<area shape="rect" id="node18" href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html" title="Simple Module TCP" alt="" coords="976,161,1048,189">
<area shape="rect" id="node20" href="oversim.common.CryptoModule.html" title="Simple Module CryptoModule" alt="" coords="1072,161,1173,189">
<area shape="rect" id="node22" href="oversim.common.IOverlay.html" title="Module Interface IOverlay" alt="" coords="1197,161,1269,189">
<area shape="rect" id="node24" href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html" title="Compound Module NetworkLayer" alt="" coords="1293,161,1395,189">
<area shape="rect" id="node26" href="../../../inet/doc/neddoc/inet.linklayer.ppp.PPPInterface.html" title="Compound Module PPPInterface" alt="" coords="1419,161,1517,189">
<area shape="rect" id="node28" href="../../../inet/doc/neddoc/inet.util.NAMTraceWriter.html" title="Simple Module NAMTraceWriter" alt="" coords="1541,161,1661,189">
<area shape="rect" id="node30" href="oversim.underlay.inetunderlay.InetUnderlayNetwork.html" title="Network InetUnderlayNetwork" alt="" coords="763,6,907,34">
</map>
<h3 class="subtitle">Inheritance diagram:</h3>
<p>The following diagram shows inheritance relationships for this type.
Unresolved types are missing from the diagram.
Click <a href="full-ned-inheritance-diagram.html">here</a> to see the full picture.</p>
<img src="oversim.underlay.inetunderlay.OverlayRouter-inheritance.png" ismap="yes" usemap="#inheritance-diagram"/><map name="inheritance-diagram"><area shape="rect" id="node1" href="oversim.underlay.inetunderlay.OverlayRouter.html" title="Compound Module OverlayRouter" alt="" coords="5,6,112,34">
</map>
<h3 class="subtitle">Networks:</h3>
<table>
<tr>
   <td>
      <a href="oversim.underlay.inetunderlay.InetUnderlayNetwork.html">InetUnderlayNetwork</a>
      <i> (network)</i>
   </td>
   <td>

<p>The InetUnderlay ned-file </p>
<p><b>See also:</b> <a href="oversim.underlay.inetunderlay.InetUnderlayConfigurator.html">InetUnderlayConfigurator</a></p>
   </td>
</tr>
</table>
<h3 class="subtitle">Parameters:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Default value</th>
      <th>Description</th>
   </tr>
<tr class="local">
   <td width="150">overlayType</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>overlay protocol compound module to use</p>
   </td>
</tr>
<tr class="local">
   <td width="150">tier1Type</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>the application on top off the overly used in the simulation</p>
   </td>
</tr>
<tr class="local">
   <td width="150">tier2Type</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>tier 2 module to use</p>
   </td>
</tr>
<tr class="local">
   <td width="150">tier3Type</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>tier 3 module to use</p>
   </td>
</tr>
<tr class="local">
   <td width="150">numTiers</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120"></td>
   <td>
<p>number of tiers</p>
   </td>
</tr>
<tr class="local">
   <td width="150">routingFile</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120">""</td>
   <td>   </td>
</tr>
</table>
<h3 class="subtitle">Properties:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Value</th>
      <th>Description</th>
   </tr>
<tr>
   <td width="150">node</td>
   <td width="100"><i></i></td>
   <td></td>
</tr>
<tr>
   <td width="150">display</td>
   <td width="100"><i>bgb=360,476;i=abstract/router</i></td>
   <td></td>
</tr>
</table>
<h3 class="subtitle">Gates:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Direction</th>
      <th>Size</th>
      <th>Description</th>
   </tr>
<tr class="local">
   <td width="150">pppg [ ]</xsl:if></td>
   <td width="100"><i>inout</i></td>
   <td width="50"></td>   <td>
<p>gates from overlay</p>
</td>
</tr>
<tr class="local">
   <td width="150">ethg [ ]</xsl:if></td>
   <td width="100"><i>inout</i></td>
   <td width="50"></td>   <td>
<p>placeholder for zero-size vector</p>
</td>
</tr>
<tr class="local">
   <td width="150">overlayNeighborArrowIn [ ]</xsl:if></td>
   <td width="100"><i>input</i></td>
   <td width="50"></td>   <td>
<p>incoming gate for visualizing overlay neighborship with connection arrows</p>
</td>
</tr>
<tr class="local">
   <td width="150">overlayNeighborArrowOut [ ]</xsl:if></td>
   <td width="100"><i>output</i></td>
   <td width="50"></td>   <td>
<p>incoming gate for visualizing overlay neighborship with connection arrows</p>
</td>
</tr>
</table>
<h3 class="subtitle">Unassigned submodule parameters:</h3>
<table class="paramtable">
   <tr>
      <th>Name</th>
      <th>Type</th>
      <th>Default value</th>
      <th>Description</th>
   </tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.advertisedWindow</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120">14*this.mss</td>
   <td>
<p>in bytes, corresponds with the maximal receiver buffer capacity (Note: normally, NIC queues should be at least this size)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.delayedAcksEnabled</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>delayed ACK algorithm (RFC 1122) enabled/disabled</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.nagleEnabled</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">true</td>
   <td>
<p>Nagle's algorithm (RFC 896) enabled/disabled</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.limitedTransmitEnabled</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>Limited Transmit algorithm (RFC 3042) enabled/disabled (can be used for TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.increasedIWEnabled</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>Increased Initial Window (RFC 3390) enabled/disabled</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.sackSupport</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>Selective Acknowledgment (RFC 2018, 2883, 3517) support (header option) (SACK will be enabled for a connection if both endpoints support it)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.windowScalingSupport</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>Window Scale (RFC 1323) support (header option) (WS will be enabled for a connection if both endpoints support it)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.timestampSupport</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">false</td>
   <td>
<p>Timestamps (RFC 1323) support (header option) (TS will be enabled for a connection if both endpoints support it)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.mss</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120">536</td>
   <td>
<p>Maximum Segment Size (RFC 793) (header option)</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.tcpAlgorithmClass</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120">"TCPReno"</td>
   <td>
<p>TCPReno/TCPTahoe/TCPNewReno/TCPNoCongestionControl/DumbTCP</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.sendQueueClass</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120">"TCPVirtualDataSendQueue"</td>
   <td>
<p>TCPVirtualDataSendQueue/TCPMsgBasedSendQueue</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.receiveQueueClass</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120">"TCPVirtualDataRcvQueue"</td>
   <td>
<p>TCPVirtualDataRcvQueue/TCPMsgBasedRcvQueue</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.transport.tcp.TCP.html">tcp</a>.recordStats</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120">true</td>
   <td>
<p>recording of seqNum etc. into output vectors enabled/disabled</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html">networkLayer</a>.<a href="../../../inet/doc/neddoc/inet.networklayer.ipv4.IP.html">ip</a>.procDelay</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120">0s</td>
   <td>   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html">networkLayer</a>.<a href="../../../inet/doc/neddoc/inet.networklayer.arp.ARP.html">arp</a>.retryTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120">1s</td>
   <td>
<p>number seconds ARP waits between retries to resolve an IP address</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html">networkLayer</a>.<a href="../../../inet/doc/neddoc/inet.networklayer.arp.ARP.html">arp</a>.retryCount</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120">3</td>
   <td>
<p>number of times ARP will attempt to resolve an IP address</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.nodes.inet.NetworkLayer.html">networkLayer</a>.<a href="../../../inet/doc/neddoc/inet.networklayer.arp.ARP.html">arp</a>.cacheTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120">120s</td>
   <td>
<p>number seconds unused entries in the cache will time out</p>
   </td>
</tr>
<tr>
   <td><a href="../../../inet/doc/neddoc/inet.linklayer.ppp.PPPInterface.html">ppp</a>.<a href="../../../inet/doc/neddoc/inet.linklayer.ppp.PPP.html">ppp</a>.mtu</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120">4470</td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.rpcUdpTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for direct RPCs</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.rpcKeyTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for routed RPCs</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.optimizeTimeouts</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>calculate timeouts from measured RTTs
and network coordinates</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.rpcExponentialBackoff</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>if true, doubles the timeout for
every retransmission</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.debugOutput</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>enable debug output</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.enableNeighborCache</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>use neighbor cache for reducing ping traffic?</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.rttExpirationTime</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>expiration of the validity of the measured rtts</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.maxSize</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>maximum size of the cache</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.rttHistory</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.timeoutAccuracyLimit</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.defaultQueryType</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.defaultQueryTypeI</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.defaultQueryTypeQ</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.doDiscovery</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.ncsType</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.ncsSendBackOwnCoords</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.gnpDimensions</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120"></td>
   <td>
<p>gnp settings</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.gnpCoordCalcRuns</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.gnpLandmarkTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.npsMaxLayer</td>
   <td width="100">
      <i>int</i>
   </td>
   <td width="120"></td>
   <td>
<p>nps settings</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.vivaldiShowPosition</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>vivaldi settings</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.vivaldiErrorConst</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.vivaldiCoordConst</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.vivaldiDimConst</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.vivaldiEnableHeightVector</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.svivaldiLossConst</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>svivaldi settings</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.svivaldiLossResetLimit</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.NeighborCache.html">neighborCache</a>.simpleNcsDelayFaultType</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>simpleNcs settings</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.rpcUdpTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for direct RPCs</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.rpcKeyTimeout</td>
   <td width="100">
      <i>double</i>
   </td>
   <td width="120"></td>
   <td>
<p>default timeout value for routed RPCs</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.optimizeTimeouts</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>calculate timeouts from measured RTTs
and network coordinates</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.rpcExponentialBackoff</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>if true, doubles the timeout for
every retransmission</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.debugOutput</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>enable debug output</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.mergeOverlayPartitions</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>if true, detect and merge overlay partitions</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.BootstrapList.html">bootstrapList</a>.maintainList</td>
   <td width="100">
      <i>bool</i>
   </td>
   <td width="120"></td>
   <td>
<p>maintain a list of bootstrap candidates and check them periodically</p>
   </td>
</tr>
<tr>
   <td><a href="oversim.common.CryptoModule.html">cryptoModule</a>.keyFile</td>
   <td width="100">
      <i>string</i>
   </td>
   <td width="120"></td>
   <td>
<p>the name of the file containing the public key pair used to sign messages</p>
   </td>
</tr>
</table>
<h3 class="subtitle">Source code:</h3>
<pre class="src"><span style="color: #808080; font-style: italic; ">//
// Router in the overlay network
//
</span><span style="color: #800000; font-weight: bold; ">module</span><span style="color: #000000; "> </span><span style="color: #000000; ">OverlayRouter</span><span style="color: #000000; ">
{
    </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
        </span><span style="color: #000000; font-weight: bold; ">@node</span><span style="color: #000000; ">();
        </span><span style="color: #000080; font-weight: bold; ">string</span><span style="color: #000000; "> </span><span style="color: #000000; ">overlayType</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// overlay protocol compound module to use
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">string</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier1Type</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// the application on top off the overly used in the simulation
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">string</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier2Type</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// tier 2 module to use
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">string</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier3Type</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// tier 3 module to use
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">int</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// number of tiers
</span><span style="color: #000000; ">
        </span><span style="color: #000080; font-weight: bold; ">string</span><span style="color: #000000; "> </span><span style="color: #000000; ">routingFile</span><span style="color: #000000; "> = </span><span style="color: #800000; font-weight: bold; ">default</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;&quot;</span><span style="color: #000000; ">);
        </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;bgb=360,476;i=abstract/router&quot;</span><span style="color: #000000; ">);
    </span><span style="color: #800000; font-weight: bold; ">gates</span><span style="color: #000000; ">:
        </span><span style="color: #000080; font-weight: bold; ">inout</span><span style="color: #000000; "> </span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">[];    </span><span style="color: #808080; font-style: italic; ">// gates from overlay
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">inout</span><span style="color: #000000; "> </span><span style="color: #000000; ">ethg</span><span style="color: #000000; ">[];    </span><span style="color: #808080; font-style: italic; ">// placeholder for zero-size vector
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">input</span><span style="color: #000000; "> </span><span style="color: #000000; ">overlayNeighborArrowIn</span><span style="color: #000000; ">[]; </span><span style="color: #808080; font-style: italic; ">// incoming gate for visualizing overlay neighborship with connection arrows
</span><span style="color: #000000; ">        </span><span style="color: #000080; font-weight: bold; ">output</span><span style="color: #000000; "> </span><span style="color: #000000; ">overlayNeighborArrowOut</span><span style="color: #000000; ">[]; </span><span style="color: #808080; font-style: italic; ">// incoming gate for visualizing overlay neighborship with connection arrows
</span><span style="color: #000000; ">
    </span><span style="color: #800000; font-weight: bold; ">submodules</span><span style="color: #000000; ">:
        </span><span style="color: #000000; ">namTrace</span><span style="color: #000000; ">: </span><span style="color: #000000; ">NAMTraceWriter</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; ">namid</span><span style="color: #000000; "> = -</span><span style="color: #008000; ">1</span><span style="color: #000000; ">; </span><span style="color: #808080; font-style: italic; ">// auto
</span><span style="color: #000000; ">                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=84,422&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">notificationBoard</span><span style="color: #000000; ">: </span><span style="color: #000000; ">NotificationBoard</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=84,214&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">interfaceTable</span><span style="color: #000000; ">: </span><span style="color: #000000; ">InterfaceTable</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=84,278&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">routingTable</span><span style="color: #000000; ">: </span><span style="color: #000000; ">RoutingTable</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; ">IPForward</span><span style="color: #000000; "> = </span><span style="color: #008000; ">true</span><span style="color: #000000; ">;
                </span><span style="color: #000000; ">routerId</span><span style="color: #000000; "> = </span><span style="color: #008000; ">&quot;auto&quot;</span><span style="color: #000000; ">;
                </span><span style="color: #000000; ">routingFile</span><span style="color: #000000; "> = </span><span style="color: #000000; ">routingFile</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// use predefined routing file if given
</span><span style="color: #000000; ">                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=84,348&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">: &lt;</span><span style="color: #000000; ">tier3Type</span><span style="color: #000000; ">&gt; </span><span style="color: #800000; font-weight: bold; ">like</span><span style="color: #000000; "> </span><span style="color: #000000; ">ITier</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=48,64&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">: &lt;</span><span style="color: #000000; ">tier2Type</span><span style="color: #000000; ">&gt; </span><span style="color: #800000; font-weight: bold; ">like</span><span style="color: #000000; "> </span><span style="color: #000000; ">ITier</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=139,96&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">: &lt;</span><span style="color: #000000; ">tier1Type</span><span style="color: #000000; ">&gt; </span><span style="color: #800000; font-weight: bold; ">like</span><span style="color: #000000; "> </span><span style="color: #000000; ">ITier</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=218,130&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">: &lt;</span><span style="color: #000000; ">overlayType</span><span style="color: #000000; ">&gt; </span><span style="color: #800000; font-weight: bold; ">like</span><span style="color: #000000; "> </span><span style="color: #000000; ">IOverlay</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=282,184&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">: </span><span style="color: #000000; ">UDP</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=282,262&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">: </span><span style="color: #000000; ">TCP</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=230,262&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">: </span><span style="color: #000000; ">NetworkLayer</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; ">proxyARP</span><span style="color: #000000; "> = </span><span style="color: #008000; ">false</span><span style="color: #000000; ">;    </span><span style="color: #808080; font-style: italic; ">// sets proxy \ARP mode (replying to \ARP requests for the addresses for which a routing table entry exists)
</span><span style="color: #000000; ">                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=282,340;q=queue&quot;</span><span style="color: #000000; ">);
            </span><span style="color: #800000; font-weight: bold; ">gates</span><span style="color: #000000; ">:
                </span><span style="color: #000000; ">ifIn</span><span style="color: #000000; ">[</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">)+</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">ethg</span><span style="color: #000000; ">)];
                </span><span style="color: #000000; ">ifOut</span><span style="color: #000000; ">[</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">)+</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">ethg</span><span style="color: #000000; ">)];
        }
        </span><span style="color: #000000; ">ppp</span><span style="color: #000000; ">[</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">)]: </span><span style="color: #000000; ">PPPInterface</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=282,422,row,90;q=txQueue&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">neighborCache</span><span style="color: #000000; ">: </span><span style="color: #000000; ">NeighborCache</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=168,422&quot;</span><span style="color: #000000; ">);
        }
        </span><span style="color: #000000; ">bootstrapList</span><span style="color: #000000; ">: </span><span style="color: #000000; ">BootstrapList</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=168,278&quot;</span><span style="color: #000000; ">);

        }
        </span><span style="color: #000000; ">cryptoModule</span><span style="color: #000000; ">: </span><span style="color: #000000; ">CryptoModule</span><span style="color: #000000; "> {
            </span><span style="color: #800000; font-weight: bold; ">parameters</span><span style="color: #000000; ">:
                </span><span style="color: #000000; font-weight: bold; ">@display</span><span style="color: #000000; ">(</span><span style="color: #008000; ">&quot;p=168,348&quot;</span><span style="color: #000000; ">);
        }
    </span><span style="color: #800000; font-weight: bold; ">connections</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">allowunconnected</span><span style="color: #000000; ">:
        </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">to_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">from_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">0</span><span style="color: #000000; ">;

        </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">to_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">from_upperTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; "> &gt; </span><span style="color: #008000; ">1</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">from_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier1</span><span style="color: #000000; ">.</span><span style="color: #000000; ">to_upperTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; "> &gt; </span><span style="color: #008000; ">1</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">1</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">1</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">1</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">1</span><span style="color: #000000; ">;

        </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">to_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">from_upperTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; "> &gt; </span><span style="color: #008000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">from_lowerTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier2</span><span style="color: #000000; ">.</span><span style="color: #000000; ">to_upperTier</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; "> &gt; </span><span style="color: #008000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++ </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tier3</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">if</span><span style="color: #000000; "> </span><span style="color: #000000; ">numTiers</span><span style="color: #000000; ">&gt;</span><span style="color: #008000; ">2</span><span style="color: #000000; ">;

        </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++;
        </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++;

        </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++;
        </span><span style="color: #000000; ">overlay</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++;

        </span><span style="color: #000000; ">bootstrapList</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appIn</span><span style="color: #000000; ">++;
        </span><span style="color: #000000; ">bootstrapList</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">appOut</span><span style="color: #000000; ">++;

        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ipOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpIn</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">udp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ipIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">udpOut</span><span style="color: #000000; ">;

        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ipOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpIn</span><span style="color: #000000; ">;
        </span><span style="color: #000000; ">tcp</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ipIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">tcpOut</span><span style="color: #000000; ">;

        </span><span style="color: #808080; font-style: italic; ">// connections to network outside
</span><span style="color: #000000; ">        </span><span style="color: #800000; font-weight: bold; ">for</span><span style="color: #000000; "> </span><span style="color: #000000; ">i</span><span style="color: #000000; ">=</span><span style="color: #008000; ">0</span><span style="color: #000000; ">..</span><span style="color: #800000; font-weight: bold; ">sizeof</span><span style="color: #000000; ">(</span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">)-</span><span style="color: #008000; ">1</span><span style="color: #000000; "> {
            </span><span style="color: #000000; ">pppg</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">] </span><span style="color: #800000; font-weight: bold; ">&lt;--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">ppp</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">].</span><span style="color: #000000; ">phys</span><span style="color: #000000; ">;
            </span><span style="color: #000000; ">ppp</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">].</span><span style="color: #000000; ">netwOut</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">--&gt;</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ifIn</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">];
            </span><span style="color: #000000; ">ppp</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">].</span><span style="color: #000000; ">netwIn</span><span style="color: #000000; "> </span><span style="color: #800000; font-weight: bold; ">&lt;--</span><span style="color: #000000; "> </span><span style="color: #000000; ">networkLayer</span><span style="color: #000000; ">.</span><span style="color: #000000; ">ifOut</span><span style="color: #000000; ">[</span><span style="color: #000000; ">i</span><span style="color: #000000; ">];
        }

}

</span></pre>
   <hr><p class="footer"><a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top"><img src="by-sa.png"></a> This documentation is released under the <a href="http://creativecommons.org/licenses/by-sa/3.0" target="_top">Creative Commons license</a></p>
   </body>
</html>
